package algo3.pruebas.partesTest;
import junit.framework.TestCase;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Danio;
import algo3.modelo.armas.DisparoConvencional;
import algo3.modelo.armas.Mina;
import algo3.modelo.partes.ParteBarco;

public class ParteBarcoTest extends TestCase {

	public void testDestruirParte() {
		ParteBarco unaParte = new ParteBarco();
		unaParte.destruirParte();
		assertEquals("DESTRUIDA", unaParte.getEstado());
	}
	
	public void testObtenerPosicion(){
		Posicion unaPosicion = new Posicion (1,4);
		ParteBarco unaParte = new ParteBarco(new Posicion (1,4));
		assertEquals(unaPosicion, unaParte.getPosicion());
		
	}
	
	public void testRecibeDisparoDirecto(){
		Posicion pos = new Posicion(0, 0);
		ParteBarco unaParte = new ParteBarco(pos);
		unaParte.recibirDanio(new Danio(pos, DisparoConvencional.class));
		assertEquals(0, unaParte.getDurabilidad());	
	}

	public void testRecibeDisparoDirectoPeroFallaEnLaPosicion(){
		Posicion pos1 = new Posicion(0, 0);
		Posicion pos2 = new Posicion(8, 8);
		ParteBarco unaParte = new ParteBarco(pos1);
		unaParte.recibirDanio(new Danio(pos2, DisparoConvencional.class));
		assertEquals(1, unaParte.getDurabilidad());	
	}
	
	public void testRecibeDanioDeMina(){
		Posicion pos = new Posicion(0, 0);
		ParteBarco unaParte = new ParteBarco(pos);
		unaParte.recibirDanio(new Danio(pos, Mina.class));
		assertEquals(0, unaParte.getDurabilidad());	
	}
}
